{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "8078effd",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "import lightgbm as lgb\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn import metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b6033ed9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "样本数量: 307511\n",
      "特征数量(含TARGET[label]): 122\n"
     ]
    }
   ],
   "source": [
    "train_data=pd.read_csv('application_train.csv')\n",
    "print(\"样本数量:\",train_data.shape[0])\n",
    "print(\"特征数量(含TARGET[label]):\",train_data.shape[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "962fd4c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <th>TARGET</th>\n",
       "      <th>NAME_CONTRACT_TYPE</th>\n",
       "      <th>CODE_GENDER</th>\n",
       "      <th>FLAG_OWN_CAR</th>\n",
       "      <th>FLAG_OWN_REALTY</th>\n",
       "      <th>CNT_CHILDREN</th>\n",
       "      <th>AMT_INCOME_TOTAL</th>\n",
       "      <th>AMT_CREDIT</th>\n",
       "      <th>AMT_ANNUITY</th>\n",
       "      <th>...</th>\n",
       "      <th>FLAG_DOCUMENT_18</th>\n",
       "      <th>FLAG_DOCUMENT_19</th>\n",
       "      <th>FLAG_DOCUMENT_20</th>\n",
       "      <th>FLAG_DOCUMENT_21</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_HOUR</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_DAY</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_WEEK</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_MON</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_QRT</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_YEAR</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>100002</td>\n",
       "      <td>1</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>M</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>202500.0</td>\n",
       "      <td>406597.5</td>\n",
       "      <td>24700.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>100003</td>\n",
       "      <td>0</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>N</td>\n",
       "      <td>0</td>\n",
       "      <td>270000.0</td>\n",
       "      <td>1293502.5</td>\n",
       "      <td>35698.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>100004</td>\n",
       "      <td>0</td>\n",
       "      <td>Revolving loans</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>67500.0</td>\n",
       "      <td>135000.0</td>\n",
       "      <td>6750.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100006</td>\n",
       "      <td>0</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>135000.0</td>\n",
       "      <td>312682.5</td>\n",
       "      <td>29686.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100007</td>\n",
       "      <td>0</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>M</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>121500.0</td>\n",
       "      <td>513000.0</td>\n",
       "      <td>21865.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 122 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   SK_ID_CURR  TARGET NAME_CONTRACT_TYPE CODE_GENDER FLAG_OWN_CAR  \\\n",
       "0      100002       1         Cash loans           M            N   \n",
       "1      100003       0         Cash loans           F            N   \n",
       "2      100004       0    Revolving loans           M            Y   \n",
       "3      100006       0         Cash loans           F            N   \n",
       "4      100007       0         Cash loans           M            N   \n",
       "\n",
       "  FLAG_OWN_REALTY  CNT_CHILDREN  AMT_INCOME_TOTAL  AMT_CREDIT  AMT_ANNUITY  \\\n",
       "0               Y             0          202500.0    406597.5      24700.5   \n",
       "1               N             0          270000.0   1293502.5      35698.5   \n",
       "2               Y             0           67500.0    135000.0       6750.0   \n",
       "3               Y             0          135000.0    312682.5      29686.5   \n",
       "4               Y             0          121500.0    513000.0      21865.5   \n",
       "\n",
       "   ...  FLAG_DOCUMENT_18 FLAG_DOCUMENT_19 FLAG_DOCUMENT_20 FLAG_DOCUMENT_21  \\\n",
       "0  ...                 0                0                0                0   \n",
       "1  ...                 0                0                0                0   \n",
       "2  ...                 0                0                0                0   \n",
       "3  ...                 0                0                0                0   \n",
       "4  ...                 0                0                0                0   \n",
       "\n",
       "  AMT_REQ_CREDIT_BUREAU_HOUR AMT_REQ_CREDIT_BUREAU_DAY  \\\n",
       "0                        0.0                       0.0   \n",
       "1                        0.0                       0.0   \n",
       "2                        0.0                       0.0   \n",
       "3                        NaN                       NaN   \n",
       "4                        0.0                       0.0   \n",
       "\n",
       "   AMT_REQ_CREDIT_BUREAU_WEEK  AMT_REQ_CREDIT_BUREAU_MON  \\\n",
       "0                         0.0                        0.0   \n",
       "1                         0.0                        0.0   \n",
       "2                         0.0                        0.0   \n",
       "3                         NaN                        NaN   \n",
       "4                         0.0                        0.0   \n",
       "\n",
       "   AMT_REQ_CREDIT_BUREAU_QRT  AMT_REQ_CREDIT_BUREAU_YEAR  \n",
       "0                        0.0                         1.0  \n",
       "1                        0.0                         0.0  \n",
       "2                        0.0                         0.0  \n",
       "3                        NaN                         NaN  \n",
       "4                        0.0                         0.0  \n",
       "\n",
       "[5 rows x 122 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "67c6ab62",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "样本数量: 48744\n",
      "测试样本特征(不含TARGET[label]): 121\n"
     ]
    }
   ],
   "source": [
    "test_data=pd.read_csv('application_test.csv')\n",
    "print(\"样本数量:\",test_data.shape[0])\n",
    "print(\"测试样本特征(不含TARGET[label]):\",test_data.shape[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d6289984",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <th>NAME_CONTRACT_TYPE</th>\n",
       "      <th>CODE_GENDER</th>\n",
       "      <th>FLAG_OWN_CAR</th>\n",
       "      <th>FLAG_OWN_REALTY</th>\n",
       "      <th>CNT_CHILDREN</th>\n",
       "      <th>AMT_INCOME_TOTAL</th>\n",
       "      <th>AMT_CREDIT</th>\n",
       "      <th>AMT_ANNUITY</th>\n",
       "      <th>AMT_GOODS_PRICE</th>\n",
       "      <th>...</th>\n",
       "      <th>FLAG_DOCUMENT_18</th>\n",
       "      <th>FLAG_DOCUMENT_19</th>\n",
       "      <th>FLAG_DOCUMENT_20</th>\n",
       "      <th>FLAG_DOCUMENT_21</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_HOUR</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_DAY</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_WEEK</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_MON</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_QRT</th>\n",
       "      <th>AMT_REQ_CREDIT_BUREAU_YEAR</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>100001</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>135000.0</td>\n",
       "      <td>568800.0</td>\n",
       "      <td>20560.5</td>\n",
       "      <td>450000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>100005</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>M</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>99000.0</td>\n",
       "      <td>222768.0</td>\n",
       "      <td>17370.0</td>\n",
       "      <td>180000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>100013</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>202500.0</td>\n",
       "      <td>663264.0</td>\n",
       "      <td>69777.0</td>\n",
       "      <td>630000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100028</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>2</td>\n",
       "      <td>315000.0</td>\n",
       "      <td>1575000.0</td>\n",
       "      <td>49018.5</td>\n",
       "      <td>1575000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100038</td>\n",
       "      <td>Cash loans</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>180000.0</td>\n",
       "      <td>625500.0</td>\n",
       "      <td>32067.0</td>\n",
       "      <td>625500.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 121 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   SK_ID_CURR NAME_CONTRACT_TYPE CODE_GENDER FLAG_OWN_CAR FLAG_OWN_REALTY  \\\n",
       "0      100001         Cash loans           F            N               Y   \n",
       "1      100005         Cash loans           M            N               Y   \n",
       "2      100013         Cash loans           M            Y               Y   \n",
       "3      100028         Cash loans           F            N               Y   \n",
       "4      100038         Cash loans           M            Y               N   \n",
       "\n",
       "   CNT_CHILDREN  AMT_INCOME_TOTAL  AMT_CREDIT  AMT_ANNUITY  AMT_GOODS_PRICE  \\\n",
       "0             0          135000.0    568800.0      20560.5         450000.0   \n",
       "1             0           99000.0    222768.0      17370.0         180000.0   \n",
       "2             0          202500.0    663264.0      69777.0         630000.0   \n",
       "3             2          315000.0   1575000.0      49018.5        1575000.0   \n",
       "4             1          180000.0    625500.0      32067.0         625500.0   \n",
       "\n",
       "   ... FLAG_DOCUMENT_18 FLAG_DOCUMENT_19 FLAG_DOCUMENT_20 FLAG_DOCUMENT_21  \\\n",
       "0  ...                0                0                0                0   \n",
       "1  ...                0                0                0                0   \n",
       "2  ...                0                0                0                0   \n",
       "3  ...                0                0                0                0   \n",
       "4  ...                0                0                0                0   \n",
       "\n",
       "  AMT_REQ_CREDIT_BUREAU_HOUR  AMT_REQ_CREDIT_BUREAU_DAY  \\\n",
       "0                        0.0                        0.0   \n",
       "1                        0.0                        0.0   \n",
       "2                        0.0                        0.0   \n",
       "3                        0.0                        0.0   \n",
       "4                        NaN                        NaN   \n",
       "\n",
       "   AMT_REQ_CREDIT_BUREAU_WEEK  AMT_REQ_CREDIT_BUREAU_MON  \\\n",
       "0                         0.0                        0.0   \n",
       "1                         0.0                        0.0   \n",
       "2                         0.0                        0.0   \n",
       "3                         0.0                        0.0   \n",
       "4                         NaN                        NaN   \n",
       "\n",
       "   AMT_REQ_CREDIT_BUREAU_QRT  AMT_REQ_CREDIT_BUREAU_YEAR  \n",
       "0                        0.0                         0.0  \n",
       "1                        0.0                         3.0  \n",
       "2                        1.0                         4.0  \n",
       "3                        0.0                         3.0  \n",
       "4                        NaN                         NaN  \n",
       "\n",
       "[5 rows x 121 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f6950181",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NAME_CONTRACT_TYPE             2\n",
       "CODE_GENDER                    3\n",
       "FLAG_OWN_CAR                   2\n",
       "FLAG_OWN_REALTY                2\n",
       "NAME_TYPE_SUITE                7\n",
       "NAME_INCOME_TYPE               8\n",
       "NAME_EDUCATION_TYPE            5\n",
       "NAME_FAMILY_STATUS             6\n",
       "NAME_HOUSING_TYPE              6\n",
       "OCCUPATION_TYPE               18\n",
       "WEEKDAY_APPR_PROCESS_START     7\n",
       "ORGANIZATION_TYPE             58\n",
       "FONDKAPREMONT_MODE             4\n",
       "HOUSETYPE_MODE                 3\n",
       "WALLSMATERIAL_MODE             7\n",
       "EMERGENCYSTATE_MODE            2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#离散变量类别数量统计\n",
    "train_data.select_dtypes(include=['object']).apply(pd.Series.nunique,axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b078f93f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0列特征是label编码\n"
     ]
    }
   ],
   "source": [
    "#scikit-learn:LabelEncoder()\n",
    "le=LabelEncoder()\n",
    "count=0\n",
    "for col in train_data:\n",
    "    if train_data[col].dtype=='object':\n",
    "        if len(list(train_data[col].unique()))<=2:\n",
    "            le.fit(train_data[col])\n",
    "            train_data[col]=le.transform(train_data[col])\n",
    "            test_data[col]=le.transform(test_data[col])\n",
    "            count=count+1\n",
    "print(\"%d列特征是label编码\"%count)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f876a0ad",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data=pd.get_dummies(train_data)\n",
    "test_data=pd.get_dummies(test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ea6e188d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练用例数量：307511，特征数量(含TARGET):243\n",
      "测试用例数量：48744，特征数量(不含TARGET):239\n"
     ]
    }
   ],
   "source": [
    "print(\"训练用例数量：%d，特征数量(含TARGET):%d\"%(train_data.shape[0],train_data.shape[1]))\n",
    "print(\"测试用例数量：%d，特征数量(不含TARGET):%d\"%(test_data.shape[0],test_data.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a76574e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Years_Employment')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#工作时间直方图\n",
    "(train_data['DAYS_EMPLOYED']/-365).plot.hist(title='Years Employed Histogram')\n",
    "plt.xlabel('Years_Employment')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b708f074",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正常样本中不能按时还款客户百分比:8.66%\n",
      "异常样本中不能按时还款客户百分比:5.40%\n",
      "工作时间异常用例的数量:55374\n"
     ]
    }
   ],
   "source": [
    "#对客户进行分组\n",
    "anom=train_data[train_data['DAYS_EMPLOYED']==365243]\n",
    "non_anom=train_data[train_data['DAYS_EMPLOYED']!=365243]\n",
    "print('正常样本中不能按时还款客户百分比:%.2f%%'%(100*non_anom['TARGET'].mean()))\n",
    "print('异常样本中不能按时还款客户百分比:%.2f%%'%(100*anom['TARGET'].mean()))\n",
    "print('工作时间异常用例的数量:%d'%len(anom))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "68e3beae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Years Employment')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#anom标记列\n",
    "train_data['DAYS_EMPLOYED_ANOM']=train_data['DAYS_EMPLOYED']==365243\n",
    "#用np.nan替换异常工作时间（天数）\n",
    "train_data['DAYS_EMPLOYED'].replace({365243:np.nan},inplace=True)\n",
    "(train_data['DAYS_EMPLOYED']/-365).plot.hist(title='Years Employment Histogram')\n",
    "plt.xlabel('Years Employment')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e503ce9e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.07823930830984513"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#年龄天数的绝对值，\n",
    "train_data['DAYS_BIRTH']=abs(train_data['DAYS_BIRTH'])\n",
    "train_data['DAYS_BIRTH'].corr(train_data['TARGET'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "6c187753",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Count')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#plt.style.use('fivethirtyeight')\n",
    "plt.hist(train_data['DAYS_BIRTH']/365,edgecolor='k',bins=25)\n",
    "plt.title('Age of Client')\n",
    "plt.xlabel('Age (years)')\n",
    "plt.ylabel('Count')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "1dd58fb4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'KDE Distribution of Ages')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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XGdeHbp7gBp43+nbeMnzSd+1jwJDfdfb5WvzKN6fBXg3f2w3syN40+zXF/fziUjB7KfLOURERH5kZo8CDZxzYwptLCIBpxE3ERH5ga9O21nm6QXcAhQ0SioipSigiZuZDfcVaNxsZg/lc9zM7Gnf8ZVm1i3P8UgzW2ZmX+R6r5av+OMm33PNQH4GEZEwUw1vndtxvJsLHserpSciZUDAEjdfPaDngBF4C2FHm1n7PM1G4K0naYVXFPOFPMd/CazL895DwHTnXCtguu+1iIj4ge/O0JbOucrOuabOuX86rakRKTMCOeLWC9jsnNvqnMvAq+w9Mk+bkcB455kPxJpvT0Izi8crWvlqPn1OFYR8C+8uKREREZFyL5CJWxw/LdyYzM8LRBbU5km8O6/ylhWo75zbDeB7rueneEVERETKtKgAnju/Kut5h9vzbWNmFwF7nXNLzGxQiS7ubYw9DqBKlSrd27ZtW5LTiIiIiJSqJUuW7HfO1c3vWCATt2R+WnE7nh8rkBfW5krgEjO7AKgIVDez/znnrgdSzKyhc263b1p1b34Xd869DLwM0KNHD7d4cVH2xxYREREJLjPLu0XeDwI5VboIaGVmzcwsBq9g46Q8bSYBN/ruLu0DHHbO7XbOPeyci3fONfX1+9aXtJ3qc6qe0Bh0t5OIiIiEiYCNuDnnsnxb4HwNRAKvO+fWmNkdvuMv4m0DcwGwGW9T5ZuKcOp/ARPM7BYgEbgqEPGLiIiIlDVhsXOCpkpFREQkVJjZEudcj/yOaecEERERkRChxE1EREQkRChxExEREQkRStxEREREQoQSNxEREZEQocRNREREJEQocRMREREJEUrcREREREKEEjcRERGREKHETURERCREKHETERERCRFK3ERERERChBI3ERERkRChxE1EREQkRChxExEREQkRStxEREREQoQSNxEREZEQocRNREREJEQocRMREREJEUrcREREREKEEjcRERGREKHETURERCREKHETERERCRFK3ERERERChBI3ERERkRChxE1EREQkRChxExEREQkRStxEREREQoQSNxEREZEQocRNREREJEQocRMREREJEUrcREREREJEQBM3MxtuZhvMbLOZPZTPcTOzp33HV5pZN9/7Fc1soZmtMLM1ZvbnXH0eMbOdZrbc97ggkJ9BREREpKyICtSJzSwSeA44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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#按时还款和违约客户的年龄分开估计\n",
    "plt.figure(figsize=(10,6))\n",
    "#TARGET:0,按时还款\n",
    "sns.kdeplot(train_data.loc[train_data['TARGET']==0,'DAYS_BIRTH']/365,label='target=0')\n",
    "#TARGET:1 违约\n",
    "sns.kdeplot(train_data.loc[train_data['TARGET']==1,'DAYS_BIRTH']/365,label='target=1')\n",
    "plt.xlabel('Age(years)')\n",
    "plt.ylim(0,0.04)\n",
    "plt.ylabel('Density')\n",
    "plt.title('KDE Distribution of Ages')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a3509412",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TARGET</th>\n",
       "      <th>DAYS_BIRTH</th>\n",
       "      <th>YEARS_BIRTH</th>\n",
       "      <th>YEARS_BINNED</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>9461</td>\n",
       "      <td>25.920548</td>\n",
       "      <td>(25.0, 30.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>16765</td>\n",
       "      <td>45.931507</td>\n",
       "      <td>(45.0, 50.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>19046</td>\n",
       "      <td>52.180822</td>\n",
       "      <td>(50.0, 55.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>19005</td>\n",
       "      <td>52.068493</td>\n",
       "      <td>(50.0, 55.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>19932</td>\n",
       "      <td>54.608219</td>\n",
       "      <td>(50.0, 55.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0</td>\n",
       "      <td>16941</td>\n",
       "      <td>46.413699</td>\n",
       "      <td>(45.0, 50.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0</td>\n",
       "      <td>13778</td>\n",
       "      <td>37.747945</td>\n",
       "      <td>(35.0, 40.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0</td>\n",
       "      <td>18850</td>\n",
       "      <td>51.643836</td>\n",
       "      <td>(50.0, 55.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0</td>\n",
       "      <td>20099</td>\n",
       "      <td>55.065753</td>\n",
       "      <td>(55.0, 60.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0</td>\n",
       "      <td>14469</td>\n",
       "      <td>39.641096</td>\n",
       "      <td>(35.0, 40.0]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   TARGET  DAYS_BIRTH  YEARS_BIRTH  YEARS_BINNED\n",
       "0       1        9461    25.920548  (25.0, 30.0]\n",
       "1       0       16765    45.931507  (45.0, 50.0]\n",
       "2       0       19046    52.180822  (50.0, 55.0]\n",
       "3       0       19005    52.068493  (50.0, 55.0]\n",
       "4       0       19932    54.608219  (50.0, 55.0]\n",
       "5       0       16941    46.413699  (45.0, 50.0]\n",
       "6       0       13778    37.747945  (35.0, 40.0]\n",
       "7       0       18850    51.643836  (50.0, 55.0]\n",
       "8       0       20099    55.065753  (55.0, 60.0]\n",
       "9       0       14469    39.641096  (35.0, 40.0]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "age_data=train_data[['TARGET','DAYS_BIRTH']]\n",
    "age_data['YEARS_BIRTH']=age_data['DAYS_BIRTH']/365\n",
    "#分割年龄段\n",
    "age_data['YEARS_BINNED']=pd.cut(age_data['YEARS_BIRTH'],bins=np.linspace(20,70,num=11))\n",
    "age_data.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "f1beac5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TARGET</th>\n",
       "      <th>DAYS_BIRTH</th>\n",
       "      <th>YEARS_BIRTH</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YEARS_BINNED</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>(20.0, 25.0]</th>\n",
       "      <td>0.123036</td>\n",
       "      <td>8532.795625</td>\n",
       "      <td>23.377522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(25.0, 30.0]</th>\n",
       "      <td>0.111436</td>\n",
       "      <td>10155.219250</td>\n",
       "      <td>27.822518</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(30.0, 35.0]</th>\n",
       "      <td>0.102814</td>\n",
       "      <td>11854.848377</td>\n",
       "      <td>32.479037</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(35.0, 40.0]</th>\n",
       "      <td>0.089414</td>\n",
       "      <td>13707.908253</td>\n",
       "      <td>37.555913</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(40.0, 45.0]</th>\n",
       "      <td>0.078491</td>\n",
       "      <td>15497.661233</td>\n",
       "      <td>42.459346</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(45.0, 50.0]</th>\n",
       "      <td>0.074171</td>\n",
       "      <td>17323.900441</td>\n",
       "      <td>47.462741</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(50.0, 55.0]</th>\n",
       "      <td>0.066968</td>\n",
       "      <td>19196.494791</td>\n",
       "      <td>52.593136</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(55.0, 60.0]</th>\n",
       "      <td>0.055314</td>\n",
       "      <td>20984.262742</td>\n",
       "      <td>57.491131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(60.0, 65.0]</th>\n",
       "      <td>0.052737</td>\n",
       "      <td>22780.547460</td>\n",
       "      <td>62.412459</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(65.0, 70.0]</th>\n",
       "      <td>0.037270</td>\n",
       "      <td>24292.614340</td>\n",
       "      <td>66.555108</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                TARGET    DAYS_BIRTH  YEARS_BIRTH\n",
       "YEARS_BINNED                                     \n",
       "(20.0, 25.0]  0.123036   8532.795625    23.377522\n",
       "(25.0, 30.0]  0.111436  10155.219250    27.822518\n",
       "(30.0, 35.0]  0.102814  11854.848377    32.479037\n",
       "(35.0, 40.0]  0.089414  13707.908253    37.555913\n",
       "(40.0, 45.0]  0.078491  15497.661233    42.459346\n",
       "(45.0, 50.0]  0.074171  17323.900441    47.462741\n",
       "(50.0, 55.0]  0.066968  19196.494791    52.593136\n",
       "(55.0, 60.0]  0.055314  20984.262742    57.491131\n",
       "(60.0, 65.0]  0.052737  22780.547460    62.412459\n",
       "(65.0, 70.0]  0.037270  24292.614340    66.555108"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#根据年龄段分组，计算平均值，\n",
    "age_groups=age_data.groupby('YEARS_BINNED').mean()\n",
    "age_groups"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "bde74bb7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Failure to Repay by Age Group')"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,4))\n",
    "plt.bar(age_groups.index.astype(str),100*age_groups['TARGET'])\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel('Age Group(years)')\n",
    "plt.ylabel('Failure to Repay(%)')\n",
    "plt.title('Failure to Repay by Age Group')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "39ca674c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(800000, 47)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.read_csv('./train.csv')\n",
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "3cd0174e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>loanAmnt</th>\n",
       "      <th>term</th>\n",
       "      <th>interestRate</th>\n",
       "      <th>installment</th>\n",
       "      <th>grade</th>\n",
       "      <th>subGrade</th>\n",
       "      <th>employmentTitle</th>\n",
       "      <th>employmentLength</th>\n",
       "      <th>homeOwnership</th>\n",
       "      <th>...</th>\n",
       "      <th>n5</th>\n",
       "      <th>n6</th>\n",
       "      <th>n7</th>\n",
       "      <th>n8</th>\n",
       "      <th>n9</th>\n",
       "      <th>n10</th>\n",
       "      <th>n11</th>\n",
       "      <th>n12</th>\n",
       "      <th>n13</th>\n",
       "      <th>n14</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>35000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>19.52</td>\n",
       "      <td>917.97</td>\n",
       "      <td>E</td>\n",
       "      <td>E2</td>\n",
       "      <td>320.0</td>\n",
       "      <td>2 years</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>18000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>18.49</td>\n",
       "      <td>461.90</td>\n",
       "      <td>D</td>\n",
       "      <td>D2</td>\n",
       "      <td>219843.0</td>\n",
       "      <td>5 years</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>12000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>16.99</td>\n",
       "      <td>298.17</td>\n",
       "      <td>D</td>\n",
       "      <td>D3</td>\n",
       "      <td>31698.0</td>\n",
       "      <td>8 years</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>11000.0</td>\n",
       "      <td>3</td>\n",
       "      <td>7.26</td>\n",
       "      <td>340.96</td>\n",
       "      <td>A</td>\n",
       "      <td>A4</td>\n",
       "      <td>46854.0</td>\n",
       "      <td>10+ years</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>16.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3</td>\n",
       "      <td>12.99</td>\n",
       "      <td>101.07</td>\n",
       "      <td>C</td>\n",
       "      <td>C2</td>\n",
       "      <td>54.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>4.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 47 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  loanAmnt  term  interestRate  installment grade subGrade  \\\n",
       "0   0   35000.0     5         19.52       917.97     E       E2   \n",
       "1   1   18000.0     5         18.49       461.90     D       D2   \n",
       "2   2   12000.0     5         16.99       298.17     D       D3   \n",
       "3   3   11000.0     3          7.26       340.96     A       A4   \n",
       "4   4    3000.0     3         12.99       101.07     C       C2   \n",
       "\n",
       "   employmentTitle employmentLength  homeOwnership  ...    n5    n6    n7  \\\n",
       "0            320.0          2 years              2  ...   9.0   8.0   4.0   \n",
       "1         219843.0          5 years              0  ...   NaN   NaN   NaN   \n",
       "2          31698.0          8 years              0  ...   0.0  21.0   4.0   \n",
       "3          46854.0        10+ years              1  ...  16.0   4.0   7.0   \n",
       "4             54.0              NaN              1  ...   4.0   9.0  10.0   \n",
       "\n",
       "     n8   n9   n10  n11  n12  n13  n14  \n",
       "0  12.0  2.0   7.0  0.0  0.0  0.0  2.0  \n",
       "1   NaN  NaN  13.0  NaN  NaN  NaN  NaN  \n",
       "2   5.0  3.0  11.0  0.0  0.0  0.0  4.0  \n",
       "3  21.0  6.0   9.0  0.0  0.0  0.0  1.0  \n",
       "4  15.0  7.0  12.0  0.0  0.0  0.0  4.0  \n",
       "\n",
       "[5 rows x 47 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4d1c94a2",
   "metadata": {},
   "outputs": [],
   "source": [
    "category_features=['grade','subGrade','homeOwnership','verificationStatus','issueDate',\n",
    "                  'purpose','postCode','regionCode','initialListStatus','applicationType','earliesCreditLine',\n",
    "                  'title','policyCode','employmentLength']\n",
    "numerical_features=['loanAmnt','term','interestRate','employmentTitle','installment','annualIncome','dti',\n",
    "                   'delinquency_2years','ficoRangeLow','ficoRangeHigh','openAcc',\n",
    "                   'pubRec','pubRecBankruptcies','revolBal','revolUtil','totalAcc']\n",
    "anonymity_features=['n0','n1','n2','n3','n4','n5','n6','n7','n8','n9','n10','n11','n12','n13','n14']\n",
    "y_feature='isDefault'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "53fb3107",
   "metadata": {},
   "outputs": [],
   "source": [
    "data[category_features]=data[category_features].astype('category')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "7a8b34cc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>grade</th>\n",
       "      <th>subGrade</th>\n",
       "      <th>homeOwnership</th>\n",
       "      <th>verificationStatus</th>\n",
       "      <th>issueDate</th>\n",
       "      <th>purpose</th>\n",
       "      <th>postCode</th>\n",
       "      <th>regionCode</th>\n",
       "      <th>initialListStatus</th>\n",
       "      <th>applicationType</th>\n",
       "      <th>earliesCreditLine</th>\n",
       "      <th>title</th>\n",
       "      <th>policyCode</th>\n",
       "      <th>employmentLength</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>E</td>\n",
       "      <td>E2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2014-07-01</td>\n",
       "      <td>1</td>\n",
       "      <td>137.0</td>\n",
       "      <td>32</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>Aug-2001</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2 years</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>D</td>\n",
       "      <td>D2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2012-08-01</td>\n",
       "      <td>0</td>\n",
       "      <td>156.0</td>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>May-2002</td>\n",
       "      <td>1723.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>5 years</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>D</td>\n",
       "      <td>D3</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2015-10-01</td>\n",
       "      <td>0</td>\n",
       "      <td>337.0</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>May-2006</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>8 years</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>A</td>\n",
       "      <td>A4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2015-08-01</td>\n",
       "      <td>4</td>\n",
       "      <td>148.0</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>May-1999</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>10+ years</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>C</td>\n",
       "      <td>C2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2016-03-01</td>\n",
       "      <td>10</td>\n",
       "      <td>301.0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>Aug-1977</td>\n",
       "      <td>11.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  grade subGrade homeOwnership verificationStatus   issueDate purpose  \\\n",
       "0     E       E2             2                  2  2014-07-01       1   \n",
       "1     D       D2             0                  2  2012-08-01       0   \n",
       "2     D       D3             0                  2  2015-10-01       0   \n",
       "3     A       A4             1                  1  2015-08-01       4   \n",
       "4     C       C2             1                  2  2016-03-01      10   \n",
       "\n",
       "  postCode regionCode initialListStatus applicationType earliesCreditLine  \\\n",
       "0    137.0         32                 0               0          Aug-2001   \n",
       "1    156.0         18                 1               0          May-2002   \n",
       "2    337.0         14                 0               0          May-2006   \n",
       "3    148.0         11                 1               0          May-1999   \n",
       "4    301.0         21                 0               0          Aug-1977   \n",
       "\n",
       "    title policyCode employmentLength  \n",
       "0     1.0        1.0          2 years  \n",
       "1  1723.0        1.0          5 years  \n",
       "2     0.0        1.0          8 years  \n",
       "3     4.0        1.0        10+ years  \n",
       "4    11.0        1.0              NaN  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[category_features].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "86443e17",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loanAmnt</th>\n",
       "      <th>term</th>\n",
       "      <th>interestRate</th>\n",
       "      <th>employmentTitle</th>\n",
       "      <th>installment</th>\n",
       "      <th>annualIncome</th>\n",
       "      <th>dti</th>\n",
       "      <th>delinquency_2years</th>\n",
       "      <th>ficoRangeLow</th>\n",
       "      <th>ficoRangeHigh</th>\n",
       "      <th>openAcc</th>\n",
       "      <th>pubRec</th>\n",
       "      <th>pubRecBankruptcies</th>\n",
       "      <th>revolBal</th>\n",
       "      <th>revolUtil</th>\n",
       "      <th>totalAcc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>35000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>19.52</td>\n",
       "      <td>320.0</td>\n",
       "      <td>917.97</td>\n",
       "      <td>110000.0</td>\n",
       "      <td>17.05</td>\n",
       "      <td>0.0</td>\n",
       "      <td>730.0</td>\n",
       "      <td>734.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>24178.0</td>\n",
       "      <td>48.9</td>\n",
       "      <td>27.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>18.49</td>\n",
       "      <td>219843.0</td>\n",
       "      <td>461.90</td>\n",
       "      <td>46000.0</td>\n",
       "      <td>27.83</td>\n",
       "      <td>0.0</td>\n",
       "      <td>700.0</td>\n",
       "      <td>704.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>15096.0</td>\n",
       "      <td>38.9</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>12000.0</td>\n",
       "      <td>5</td>\n",
       "      <td>16.99</td>\n",
       "      <td>31698.0</td>\n",
       "      <td>298.17</td>\n",
       "      <td>74000.0</td>\n",
       "      <td>22.77</td>\n",
       "      <td>0.0</td>\n",
       "      <td>675.0</td>\n",
       "      <td>679.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4606.0</td>\n",
       "      <td>51.8</td>\n",
       "      <td>27.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11000.0</td>\n",
       "      <td>3</td>\n",
       "      <td>7.26</td>\n",
       "      <td>46854.0</td>\n",
       "      <td>340.96</td>\n",
       "      <td>118000.0</td>\n",
       "      <td>17.21</td>\n",
       "      <td>0.0</td>\n",
       "      <td>685.0</td>\n",
       "      <td>689.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9948.0</td>\n",
       "      <td>52.6</td>\n",
       "      <td>28.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3000.0</td>\n",
       "      <td>3</td>\n",
       "      <td>12.99</td>\n",
       "      <td>54.0</td>\n",
       "      <td>101.07</td>\n",
       "      <td>29000.0</td>\n",
       "      <td>32.16</td>\n",
       "      <td>0.0</td>\n",
       "      <td>690.0</td>\n",
       "      <td>694.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2942.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>27.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   loanAmnt  term  interestRate  employmentTitle  installment  annualIncome  \\\n",
       "0   35000.0     5         19.52            320.0       917.97      110000.0   \n",
       "1   18000.0     5         18.49         219843.0       461.90       46000.0   \n",
       "2   12000.0     5         16.99          31698.0       298.17       74000.0   \n",
       "3   11000.0     3          7.26          46854.0       340.96      118000.0   \n",
       "4    3000.0     3         12.99             54.0       101.07       29000.0   \n",
       "\n",
       "     dti  delinquency_2years  ficoRangeLow  ficoRangeHigh  openAcc  pubRec  \\\n",
       "0  17.05                 0.0         730.0          734.0      7.0     0.0   \n",
       "1  27.83                 0.0         700.0          704.0     13.0     0.0   \n",
       "2  22.77                 0.0         675.0          679.0     11.0     0.0   \n",
       "3  17.21                 0.0         685.0          689.0      9.0     0.0   \n",
       "4  32.16                 0.0         690.0          694.0     12.0     0.0   \n",
       "\n",
       "   pubRecBankruptcies  revolBal  revolUtil  totalAcc  \n",
       "0                 0.0   24178.0       48.9      27.0  \n",
       "1                 0.0   15096.0       38.9      18.0  \n",
       "2                 0.0    4606.0       51.8      27.0  \n",
       "3                 0.0    9948.0       52.6      28.0  \n",
       "4                 0.0    2942.0       32.0      27.0  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[numerical_features].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "3322f2f5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>n0</th>\n",
       "      <th>n1</th>\n",
       "      <th>n2</th>\n",
       "      <th>n3</th>\n",
       "      <th>n4</th>\n",
       "      <th>n5</th>\n",
       "      <th>n6</th>\n",
       "      <th>n7</th>\n",
       "      <th>n8</th>\n",
       "      <th>n9</th>\n",
       "      <th>n10</th>\n",
       "      <th>n11</th>\n",
       "      <th>n12</th>\n",
       "      <th>n13</th>\n",
       "      <th>n14</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    n0   n1   n2   n3    n4    n5    n6    n7    n8   n9   n10  n11  n12  n13  \\\n",
       "0  0.0  2.0  2.0  2.0   4.0   9.0   8.0   4.0  12.0  2.0   7.0  0.0  0.0  0.0   \n",
       "1  NaN  NaN  NaN  NaN  10.0   NaN   NaN   NaN   NaN  NaN  13.0  NaN  NaN  NaN   \n",
       "2  0.0  0.0  3.0  3.0   0.0   0.0  21.0   4.0   5.0  3.0  11.0  0.0  0.0  0.0   \n",
       "3  6.0  4.0  6.0  6.0   4.0  16.0   4.0   7.0  21.0  6.0   9.0  0.0  0.0  0.0   \n",
       "4  1.0  2.0  7.0  7.0   2.0   4.0   9.0  10.0  15.0  7.0  12.0  0.0  0.0  0.0   \n",
       "\n",
       "   n14  \n",
       "0  2.0  \n",
       "1  NaN  \n",
       "2  4.0  \n",
       "3  1.0  \n",
       "4  4.0  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[anonymity_features].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "156c23f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    640390\n",
       "1    159610\n",
       "Name: isDefault, dtype: int64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['isDefault'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "67706e47",
   "metadata": {},
   "outputs": [],
   "source": [
    "features=[]\n",
    "cols=data.columns.tolist()\n",
    "for each in cols:\n",
    "    if each !='isDefault':\n",
    "        features.append(each)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "0e1177c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "46"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "3ac2169b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#lgb\n",
    "train_data=data[features]\n",
    "train_target=data['isDefault']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "f6d51065",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train,X_test,y_train,y_test=train_test_split(train_data,train_target,test_size=0.2,random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "98684d8f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(640000, 46)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "11beaabf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(160000, 46)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "144807ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "lgb_train=lgb.Dataset(X_train,y_train)\n",
    "lgb_eval=lgb.Dataset(X_test,y_test,reference=lgb_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "a70c06e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "params={\"num_leaves\":60,\n",
    "       \"objective\":\"binary\",\n",
    "       \"boosting\":\"gbdt\",\n",
    "       \"metric\":{\"binary_logloss\",\"auc\"}\n",
    "       }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "d81b5ba2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Info] Number of positive: 127468, number of negative: 512532\n",
      "[LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.114274 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 5582\n",
      "[LightGBM] [Info] Number of data points in the train set: 640000, number of used features: 45\n",
      "[LightGBM] [Info] [binary:BoostFromScore]: pavg=0.199169 -> initscore=-1.391498\n",
      "[LightGBM] [Info] Start training from score -1.391498\n",
      "[1]\tvalid_0's binary_logloss: 0.493194\tvalid_0's auc: 0.700875\n",
      "Training until validation scores don't improve for 60 rounds\n",
      "[2]\tvalid_0's binary_logloss: 0.48658\tvalid_0's auc: 0.704727\n",
      "[3]\tvalid_0's binary_logloss: 0.481248\tvalid_0's auc: 0.706408\n",
      "[4]\tvalid_0's binary_logloss: 0.476846\tvalid_0's auc: 0.708283\n",
      "[5]\tvalid_0's binary_logloss: 0.473241\tvalid_0's auc: 0.709675\n",
      "[6]\tvalid_0's binary_logloss: 0.470212\tvalid_0's auc: 0.710641\n",
      "[7]\tvalid_0's binary_logloss: 0.467664\tvalid_0's auc: 0.711204\n",
      "[8]\tvalid_0's binary_logloss: 0.465535\tvalid_0's auc: 0.711839\n",
      "[9]\tvalid_0's binary_logloss: 0.463711\tvalid_0's auc: 0.712275\n",
      "[10]\tvalid_0's binary_logloss: 0.462154\tvalid_0's auc: 0.712919\n",
      "[11]\tvalid_0's binary_logloss: 0.460784\tvalid_0's auc: 0.713529\n",
      "[12]\tvalid_0's binary_logloss: 0.459631\tvalid_0's auc: 0.713925\n",
      "[13]\tvalid_0's binary_logloss: 0.458598\tvalid_0's auc: 0.714435\n",
      "[14]\tvalid_0's binary_logloss: 0.457575\tvalid_0's auc: 0.715256\n",
      "[15]\tvalid_0's binary_logloss: 0.456738\tvalid_0's auc: 0.71584\n",
      "[16]\tvalid_0's binary_logloss: 0.456043\tvalid_0's auc: 0.716213\n",
      "[17]\tvalid_0's binary_logloss: 0.455442\tvalid_0's auc: 0.71653\n",
      "[18]\tvalid_0's binary_logloss: 0.454904\tvalid_0's auc: 0.71693\n",
      "[19]\tvalid_0's binary_logloss: 0.454414\tvalid_0's auc: 0.717241\n",
      "[20]\tvalid_0's binary_logloss: 0.45403\tvalid_0's auc: 0.717419\n",
      "[21]\tvalid_0's binary_logloss: 0.453665\tvalid_0's auc: 0.717714\n",
      "[22]\tvalid_0's binary_logloss: 0.45325\tvalid_0's auc: 0.718162\n",
      "[23]\tvalid_0's binary_logloss: 0.452923\tvalid_0's auc: 0.718547\n",
      "[24]\tvalid_0's binary_logloss: 0.452594\tvalid_0's auc: 0.718896\n",
      "[25]\tvalid_0's binary_logloss: 0.452296\tvalid_0's auc: 0.719264\n",
      "[26]\tvalid_0's binary_logloss: 0.451964\tvalid_0's auc: 0.719712\n",
      "[27]\tvalid_0's binary_logloss: 0.451684\tvalid_0's auc: 0.72017\n",
      "[28]\tvalid_0's binary_logloss: 0.451475\tvalid_0's auc: 0.720397\n",
      "[29]\tvalid_0's binary_logloss: 0.451234\tvalid_0's auc: 0.720812\n",
      "[30]\tvalid_0's binary_logloss: 0.450992\tvalid_0's auc: 0.721154\n",
      "[31]\tvalid_0's binary_logloss: 0.450831\tvalid_0's auc: 0.721342\n",
      "[32]\tvalid_0's binary_logloss: 0.450681\tvalid_0's auc: 0.721553\n",
      "[33]\tvalid_0's binary_logloss: 0.450502\tvalid_0's auc: 0.721822\n",
      "[34]\tvalid_0's binary_logloss: 0.450351\tvalid_0's auc: 0.722055\n",
      "[35]\tvalid_0's binary_logloss: 0.45025\tvalid_0's auc: 0.72217\n",
      "[36]\tvalid_0's binary_logloss: 0.45015\tvalid_0's auc: 0.722286\n",
      "[37]\tvalid_0's binary_logloss: 0.450039\tvalid_0's auc: 0.722407\n",
      "[38]\tvalid_0's binary_logloss: 0.449948\tvalid_0's auc: 0.722475\n",
      "[39]\tvalid_0's binary_logloss: 0.449859\tvalid_0's auc: 0.722586\n",
      "[40]\tvalid_0's binary_logloss: 0.449792\tvalid_0's auc: 0.722665\n",
      "[41]\tvalid_0's binary_logloss: 0.44973\tvalid_0's auc: 0.722712\n",
      "[42]\tvalid_0's binary_logloss: 0.449627\tvalid_0's auc: 0.722859\n",
      "[43]\tvalid_0's binary_logloss: 0.449542\tvalid_0's auc: 0.723015\n",
      "[44]\tvalid_0's binary_logloss: 0.449509\tvalid_0's auc: 0.723042\n",
      "[45]\tvalid_0's binary_logloss: 0.449419\tvalid_0's auc: 0.72316\n",
      "[46]\tvalid_0's binary_logloss: 0.449339\tvalid_0's auc: 0.723295\n",
      "[47]\tvalid_0's binary_logloss: 0.449283\tvalid_0's auc: 0.72333\n",
      "[48]\tvalid_0's binary_logloss: 0.449238\tvalid_0's auc: 0.723401\n",
      "[49]\tvalid_0's binary_logloss: 0.449156\tvalid_0's auc: 0.723556\n",
      "[50]\tvalid_0's binary_logloss: 0.449146\tvalid_0's auc: 0.723561\n",
      "[51]\tvalid_0's binary_logloss: 0.449123\tvalid_0's auc: 0.723592\n",
      "[52]\tvalid_0's binary_logloss: 0.449139\tvalid_0's auc: 0.723552\n",
      "[53]\tvalid_0's binary_logloss: 0.449119\tvalid_0's auc: 0.72359\n",
      "[54]\tvalid_0's binary_logloss: 0.449046\tvalid_0's auc: 0.723701\n",
      "[55]\tvalid_0's binary_logloss: 0.44907\tvalid_0's auc: 0.723647\n",
      "[56]\tvalid_0's binary_logloss: 0.449069\tvalid_0's auc: 0.723651\n",
      "[57]\tvalid_0's binary_logloss: 0.44905\tvalid_0's auc: 0.723673\n",
      "[58]\tvalid_0's binary_logloss: 0.449002\tvalid_0's auc: 0.723775\n",
      "[59]\tvalid_0's binary_logloss: 0.448962\tvalid_0's auc: 0.723871\n",
      "[60]\tvalid_0's binary_logloss: 0.448959\tvalid_0's auc: 0.723884\n",
      "[61]\tvalid_0's binary_logloss: 0.448956\tvalid_0's auc: 0.723878\n",
      "[62]\tvalid_0's binary_logloss: 0.44895\tvalid_0's auc: 0.723858\n",
      "[63]\tvalid_0's binary_logloss: 0.448921\tvalid_0's auc: 0.723933\n",
      "[64]\tvalid_0's binary_logloss: 0.448915\tvalid_0's auc: 0.723938\n",
      "[65]\tvalid_0's binary_logloss: 0.448926\tvalid_0's auc: 0.723899\n",
      "[66]\tvalid_0's binary_logloss: 0.448932\tvalid_0's auc: 0.723886\n",
      "[67]\tvalid_0's binary_logloss: 0.448924\tvalid_0's auc: 0.723906\n",
      "[68]\tvalid_0's binary_logloss: 0.448925\tvalid_0's auc: 0.723907\n",
      "[69]\tvalid_0's binary_logloss: 0.448911\tvalid_0's auc: 0.723923\n",
      "[70]\tvalid_0's binary_logloss: 0.448919\tvalid_0's auc: 0.723948\n",
      "[71]\tvalid_0's binary_logloss: 0.448916\tvalid_0's auc: 0.723953\n",
      "[72]\tvalid_0's binary_logloss: 0.448972\tvalid_0's auc: 0.723835\n",
      "[73]\tvalid_0's binary_logloss: 0.448969\tvalid_0's auc: 0.723829\n",
      "[74]\tvalid_0's binary_logloss: 0.448969\tvalid_0's auc: 0.723801\n",
      "[75]\tvalid_0's binary_logloss: 0.449023\tvalid_0's auc: 0.723675\n",
      "[76]\tvalid_0's binary_logloss: 0.449041\tvalid_0's auc: 0.723638\n",
      "[77]\tvalid_0's binary_logloss: 0.449047\tvalid_0's auc: 0.723631\n",
      "[78]\tvalid_0's binary_logloss: 0.449022\tvalid_0's auc: 0.723682\n",
      "[79]\tvalid_0's binary_logloss: 0.449024\tvalid_0's auc: 0.723674\n",
      "[80]\tvalid_0's binary_logloss: 0.449043\tvalid_0's auc: 0.723651\n",
      "[81]\tvalid_0's binary_logloss: 0.449077\tvalid_0's auc: 0.723603\n",
      "[82]\tvalid_0's binary_logloss: 0.449119\tvalid_0's auc: 0.723518\n",
      "[83]\tvalid_0's binary_logloss: 0.449139\tvalid_0's auc: 0.723488\n",
      "[84]\tvalid_0's binary_logloss: 0.449166\tvalid_0's auc: 0.723453\n",
      "[85]\tvalid_0's binary_logloss: 0.449168\tvalid_0's auc: 0.723474\n",
      "[86]\tvalid_0's binary_logloss: 0.449172\tvalid_0's auc: 0.723479\n",
      "[87]\tvalid_0's binary_logloss: 0.449191\tvalid_0's auc: 0.723431\n",
      "[88]\tvalid_0's binary_logloss: 0.449206\tvalid_0's auc: 0.723426\n",
      "[89]\tvalid_0's binary_logloss: 0.449228\tvalid_0's auc: 0.723406\n",
      "[90]\tvalid_0's binary_logloss: 0.449226\tvalid_0's auc: 0.723421\n",
      "[91]\tvalid_0's binary_logloss: 0.449277\tvalid_0's auc: 0.723325\n",
      "[92]\tvalid_0's binary_logloss: 0.449281\tvalid_0's auc: 0.723317\n",
      "[93]\tvalid_0's binary_logloss: 0.449308\tvalid_0's auc: 0.72327\n",
      "[94]\tvalid_0's binary_logloss: 0.449325\tvalid_0's auc: 0.723228\n",
      "[95]\tvalid_0's binary_logloss: 0.449345\tvalid_0's auc: 0.723202\n",
      "[96]\tvalid_0's binary_logloss: 0.449392\tvalid_0's auc: 0.723119\n",
      "[97]\tvalid_0's binary_logloss: 0.449376\tvalid_0's auc: 0.723159\n",
      "[98]\tvalid_0's binary_logloss: 0.449419\tvalid_0's auc: 0.723107\n",
      "[99]\tvalid_0's binary_logloss: 0.449423\tvalid_0's auc: 0.723128\n",
      "[100]\tvalid_0's binary_logloss: 0.449429\tvalid_0's auc: 0.723111\n",
      "[101]\tvalid_0's binary_logloss: 0.449451\tvalid_0's auc: 0.723076\n",
      "[102]\tvalid_0's binary_logloss: 0.449479\tvalid_0's auc: 0.723046\n",
      "[103]\tvalid_0's binary_logloss: 0.449491\tvalid_0's auc: 0.723057\n",
      "[104]\tvalid_0's binary_logloss: 0.449528\tvalid_0's auc: 0.722992\n",
      "[105]\tvalid_0's binary_logloss: 0.449548\tvalid_0's auc: 0.72297\n",
      "[106]\tvalid_0's binary_logloss: 0.449591\tvalid_0's auc: 0.722909\n",
      "[107]\tvalid_0's binary_logloss: 0.449625\tvalid_0's auc: 0.722833\n",
      "[108]\tvalid_0's binary_logloss: 0.449628\tvalid_0's auc: 0.722852\n",
      "[109]\tvalid_0's binary_logloss: 0.44964\tvalid_0's auc: 0.722855\n",
      "[110]\tvalid_0's binary_logloss: 0.449649\tvalid_0's auc: 0.722864\n",
      "[111]\tvalid_0's binary_logloss: 0.449692\tvalid_0's auc: 0.722791\n",
      "[112]\tvalid_0's binary_logloss: 0.449706\tvalid_0's auc: 0.722776\n",
      "[113]\tvalid_0's binary_logloss: 0.449749\tvalid_0's auc: 0.72272\n",
      "[114]\tvalid_0's binary_logloss: 0.449791\tvalid_0's auc: 0.722662\n",
      "[115]\tvalid_0's binary_logloss: 0.449799\tvalid_0's auc: 0.722659\n",
      "[116]\tvalid_0's binary_logloss: 0.449837\tvalid_0's auc: 0.722617\n",
      "[117]\tvalid_0's binary_logloss: 0.449836\tvalid_0's auc: 0.722635\n",
      "[118]\tvalid_0's binary_logloss: 0.449899\tvalid_0's auc: 0.72252\n",
      "[119]\tvalid_0's binary_logloss: 0.449908\tvalid_0's auc: 0.7225\n",
      "[120]\tvalid_0's binary_logloss: 0.449907\tvalid_0's auc: 0.722531\n",
      "[121]\tvalid_0's binary_logloss: 0.449907\tvalid_0's auc: 0.722516\n",
      "[122]\tvalid_0's binary_logloss: 0.449957\tvalid_0's auc: 0.72244\n",
      "[123]\tvalid_0's binary_logloss: 0.449956\tvalid_0's auc: 0.72244\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[124]\tvalid_0's binary_logloss: 0.449972\tvalid_0's auc: 0.722438\n",
      "[125]\tvalid_0's binary_logloss: 0.449981\tvalid_0's auc: 0.722435\n",
      "[126]\tvalid_0's binary_logloss: 0.449996\tvalid_0's auc: 0.722425\n",
      "[127]\tvalid_0's binary_logloss: 0.450021\tvalid_0's auc: 0.722386\n",
      "[128]\tvalid_0's binary_logloss: 0.450038\tvalid_0's auc: 0.722351\n",
      "[129]\tvalid_0's binary_logloss: 0.450088\tvalid_0's auc: 0.722258\n",
      "Early stopping, best iteration is:\n",
      "[69]\tvalid_0's binary_logloss: 0.448911\tvalid_0's auc: 0.723923\n"
     ]
    }
   ],
   "source": [
    "clf=lgb.train(params,lgb_train,num_boost_round=200,valid_sets=lgb_eval,early_stopping_rounds=60,feature_name=features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "919e75c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "probs=clf.predict(X_test,num_iteration=clf.best_iteration)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "5bbedf6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.12787228, 0.34819182, 0.156109  , ..., 0.09873696, 0.12579612,\n",
       "       0.1476435 ])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "bdbb85de",
   "metadata": {},
   "outputs": [],
   "source": [
    "preds=[0 if each<0.5 else 1 for each in probs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "32115314",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率是0.80315625\n"
     ]
    }
   ],
   "source": [
    "count =0\n",
    "for i in range(len(preds)):\n",
    "    if preds[i]==y_test.iloc[i]:\n",
    "        count+=1\n",
    "print('准确率是{}'.format(count/len(preds)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "ee792fd4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7239234462337187"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metrics.roc_auc_score(y_test,probs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "694c44b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<lightgbm.basic.Booster at 0x26698691910>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.save_model('./model.txt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ab2b6e33",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
